home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / DELPHI32 / AUDIO / AUDIO / AUDIO.INT < prev    next >
Text File  |  1996-08-14  |  3KB  |  88 lines

  1. unit Audio;
  2.  
  3. interface
  4.  
  5. Uses SysUtils, Windows, Controls, Classes,MMSystem, Messages;
  6. Type
  7.  
  8.     EWaveInError = class(Exception);
  9.     EWaveOutError = class(Exception);
  10.  
  11.   TWaveInData = procedure (Data : PChar; Size : integer) of object;
  12.   TBeforeOpen = procedure (var WaveFormat : pointer) of object;
  13.  
  14.   TWaveIn = class(TComponent)
  15.   private
  16.     FBeforeOpen    : TBeforeOpen;
  17.     FOnWaveInData  : TWaveInData;
  18.     FOnWaveInOpen  : TNotifyEvent;
  19.     FOnWaveInClose : TNotifyEvent;
  20.     FDeviceId      : Integer;
  21.     FWaveFormat    : pointer;
  22.     FRecording     : boolean;
  23.     FStereo        : boolean;
  24.     FSamples       : integer;
  25.     FHWnd          : HWND;
  26.     hWaveIn        : HWave;
  27.     FBufSize       : Integer;
  28.     WaveFormatEx   : TWaveFormatEX;
  29.     procedure   SetRecording(AValue : Boolean);
  30.   protected
  31.         procedure   WndProc(var Message : TMessage);
  32.   public
  33.     constructor Create(AComponent : TComponent); override;
  34.     destructor  Destroy; override;
  35.     procedure   Open; virtual;
  36.     procedure   Close; virtual;
  37.     property    Recording : boolean read FRecording write SetRecording;
  38.     property    DeviceId : integer read FDeviceId write FDeviceId;
  39.     property    Handle : HWave read hWaveIn;
  40.   published
  41.     property    OnWaveInData : TWaveInData read FOnWaveInData write FOnWaveInData;
  42.     property    OnWaveInOpen  : TNotifyEvent read FOnWaveInOpen write FOnWaveInOpen ;
  43.     property    OnWaveInClose : TNotifyEvent read FOnWaveInClose write FOnWaveInClose ;
  44.     property    BeforeOpen : TBeforeOpen read FBeforeOpen write FBeforeOpen;
  45.     property    Samples : integer read FSamples write FSamples;
  46.     property    Stereo : boolean read FStereo write FStereo;
  47.  
  48.   end;
  49.  
  50.   TWaveOut = class(TComponent)
  51.   private
  52.     FBeforeOpen    : TBeforeOpen;
  53.     FOnWaveOutOpen  : TNotifyEvent;
  54.     FOnWaveOutClose : TNotifyEvent;
  55.     FOnWaveOutDone  : TNotifyEvent;
  56.     FDeviceId      : Integer;
  57.     FWaveFormat    : pointer;
  58.     FVolume        : integer;
  59.     hWaveOut       : HWave;
  60.     WaveOutHdr     : TWaveHdr;
  61.     FRecording     : boolean;
  62.     FSamples       : integer;
  63.     FStereo        : boolean;
  64.     FHWnd          : HWND;
  65.     hWaveIn        : HWave;
  66.     FBufSize       : Integer;
  67.     WaveFormatEx   : TWaveFormatEX;
  68.     procedure SetVolume(AValue : integer);
  69.   protected
  70.         procedure WndProc(var Message : TMessage);
  71.     procedure Open; virtual;
  72.     procedure Close; virtual;
  73.   public
  74.     constructor Create(AComponent : TComponent); override;
  75.     destructor  Destroy; override;
  76.     procedure   PlayBack(Data : PChar; Size : integer);
  77.     property    Volume : integer read FVolume write SetVolume;
  78.     property    Handle : HWave read hWaveOut;
  79.   published
  80.     property    OnWaveOutOpen  : TNotifyEvent read FOnWaveOutOpen write FOnWaveOutOpen ;
  81.     property    OnWaveOutClose : TNotifyEvent read FOnWaveOutClose write FOnWaveOutClose ;
  82.     property    OnWaveOutDone  : TNotifyEvent read FOnWaveOutDone write FOnWaveOutDone ;
  83.     property    BeforeOpen : TBeforeOpen read FBeforeOpen write FBeforeOpen;
  84.     property    Samples : integer read FSamples write FSamples;
  85.     property    Stereo : boolean read FStereo write FStereo;
  86.     property    DeviceId : integer read FDeviceId write FDeviceId;
  87.   end;
  88.